home *** CD-ROM | disk | FTP | other *** search
-
- ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
-
- Piano
-
- Please read this document in entirety. I took the time to make it explicit,
- clear, and very useful. It took me longer to write it than it will ever take
- you to read it. Therefore, you owe it to both of us to read it. OK?
-
- Piano is a Presentation Manager program (for OS/2 2.x) that turns your computer
- into a MIDI controller. In other words, it allows you to play notes on
- external MIDI sound modules from your computer's keyboard and mouse via a MIDI
- Interface. If you have a sound card with a built-in sound module that is
- triggered via MIDI notes (such as a Turtle Beach MultiSound or Roland RAP-10,
- SCC-1, or other such cards, with appropriate OS/2 driver), then you can play
- those like musical instruments as well. Piano also allows you to generate many
- other types of MIDI data such as Volume, Pan, Effects Level, Chorus Level,
- Pitch Wheel, Modulation Wheel, AfterTouch (Key Pressure), and Channel Pressure
- so that if your MIDI sound module supports these MIDI messages, you can control
- the module appropriately.
-
-
- Some of the words in this manual are highlighted in bold text, such as Program
- Change. These are words that refer to controls (ie, buttons, sliders,
- checkboxes) which you manipulate in Piano's window. Other words are in colored
- text such as Channel Pressure. These refer to MIDI messages (ie, data).
- Underlined words, such as Pitch Wheel, refer to hardware, such as if I was
- referring to the Pitch Wheel on your MIDI unit. Words that are in colored text
- such as Read This are meant to be emphasized. Words in italics refer to
- aspects of OS/2.
-
- This is version 1.6.
-
-
- ΓòÉΓòÉΓòÉ 2. Copyright ΓòÉΓòÉΓòÉ
-
- This OS/2 Online Book and the related files PIANO.EXE and GENMIDI.DLL are all
- copyright 1995 by Jeff Glatt. These files are freely redistributable, and may
- be used by and distributed along with any software, be it commercial or
- otherwise, provided that these files are not internally modified, nor
- specifically sold as a complete product by themselves. The only price that you
- have to pay is the one that you're already paying by spending all of your time
- in front of a computer instead of developing healthier outlets.
-
- NOT SO STANDARD DISCLAIMER:
-
- These programs are provided "as is" without warranty of any kind either
- expressed or implied or tatooed in a place that only a few people have ever
- seen, including but not limited to the implied warranties of merchantability,
- fitness for a particular purpose, and the dubious assumption that the software
- has been created by a sane individual who would never do anything that may hurt
- you. The entire risk as to the results and performance of the programs is
- assumed by you or someone who looks exactly like you. Jeff Glatt does not
- guarantee that the functions in these programs will meet your requirements,
- especially if your requirements involve lots of latex and some docile,
- domesticated animal. Nor does Jeff Glatt warranty the programs to be
- uninterruptable or error-free, although mercifully free of "General Protection
- Faults". If you use said programs, you can not say anything nasty about the
- author, even if the programs inadvertently cause the erasure of your collection
- of X-rated GIFs of a conservative, overweight and overrated TV "personality"
- plooking himself vigorously with his royalty checks from some rancid paperback.
- Jeff Glatt is not responsible for any damages as a result of anything that he
- has done, or hasn't done, or was supposed to do but never got around to it, and
- furthermore, he doesn't even care so leave him alone, ratface. You may have
- more or less protections in certain states of the union, depending upon how far
- your local politician is willing to bend over for some bribe from a business
- lobbyist. Just remember that Jeff Glatt has no money, so don't bother suing
- him as a result of any damages caused by this OS/2 program. Tell your greasy
- lawyer to go after IBM, and make sure that you pick 12 really stupid pinheads
- for the jury. If swallowed, induce vomiting immediately by contemplating the
- asthetics of Microsoft Windows.
-
- OS/2 is a trademark of International Business Machines Corporation.
-
- Windows is a trademark of Microsoft Incorporated, and furthermore, Bill Gates
- is to blame for it.
-
- If you have unreasonably presumptuous suggestions (ie, an enduser who expects
- outrageous amounts of free support), snide comments, criticisms, and anything
- else other than dollar bills, then send them to someone else because you got it
- for free, and you know what you get for nothing? On the other hand, any type
- of positive contribution from other programmers is very much welcome and
- encouraged as these are the only folks who can made things happen for OS/2.
- IBM ain't gonna do it. If you do need to contact the author, then either phone
- some of the more prominent psychiatrict clinics in central New York state, or
- try this:
-
- Jeff Glatt
- 6 Sycamore Drive East
- New Hartford, NY 13413
- (315) 735-5350
-
- Sure, this copyright notice has attitude. Get used to it, or kill yourself.
-
-
- ΓòÉΓòÉΓòÉ 3. Driver Requirements and Setup ΓòÉΓòÉΓòÉ
-
- Of course, your computer needs some sort of MIDI interface card (ie, with MIDI
- IN and OUT jacks) to connect the computer to the MIDI unit. Many Sound Cards
- offer the option of attaching a "box" with MIDI connectors to the card's
- joystick port. This is the same thing as having a separate card that just does
- MIDI input and output.
-
- Piano requires that your MIDI interface or Sound Card has an OS/2 driver
- compatible with MPUDEV.SYS (included). Information sent to this driver via
- DosWrite() must be interpreted as outgoing MIDI data (without any timestamp).
-
- Note: Piano does not use MMPM. An MMPM driver will not work with Piano. MMPM
- is going to die a horrible death anyway due to lack of useful support,
- as well as IBM introducing a new protocol. You may as well get your
- shovel and bury MMPM right now. Piano probably also doesn't support
- IBM's "Realtime MIDI subsystem". I wouldn't know. I didn't look at it,
- and I don't intend to buy $300 worth of CD-ROMs in order to find out
- that it may not be for me anyway, plus I'm not too keen upon tying my
- stuff to an "IBM MIDI subsystem" given IBM's disinterest in pursuing
- vertical markets like the music market to the extent that Microsoft
- does. Who's to say that IBM won't traipse off with the development and
- promotion budget, fawning after their big buck corporate client
- accounts, and we won't end up with another OS/2 item of "secondary
- importance" like MMPM on our hands?
-
- You must also know your driver's internal name (which might be different than
- the filename of the driver). Often, this is the driver filename minus the .SYS
- extension.
-
- If you own an MPU-401, or some card that has an MPU-401 compatible interface
- (UART mode is good enough, but it must be actual hardware compatibility, not
- just some TSR software driver emulation such as what you get with cheesy sound
- cards), such as an SCC-1, RAP-10, MusicQuest MQX-16 or MQX-32, etc, then you
- can use my MPUDEV.SYS OS/2 driver. See the documentation with that driver for
- its internal name and usage, or see the Port setting.
-
- By default, Piano will use my MPUDEV.SYS driver (ie, the first port MPUDEV1$),
- and so you don't have to supply it with that name. If you want Piano to use a
- different driver, then you must supply the name of the driver to Piano. If you
- run Piano from an OS/2 Command Prompt, then simply type the name of your driver
- as an argument. For example, to use a driver with the internal name BLORT, you
- would specify BLORT.
-
- If you run Piano from a Desktop icon, open up the Settings menu for Piano. In
- the Parameters field, type the name of your driver. Now whenever you run Piano
- from the Desktop, it will use that driver.
-
- Note: You must omit the .SYS extension from the driver name.
-
- If Piano can't open the specified driver, it will display an error dialog box.
- At this point, the program will run, but it won't really do anything until you
- open a driver (ie, port).
-
- You may want to specify the /I switch when invoking the program if you don't
- desire the card to be reset when Piano starts up. The RAP-10's entire GM
- module will be reset to default values otherwise.
-
- There are other startup parameters that you can pass to Piano, either by adding
- them to the command line, or entering them in the Parameters field of the
- Desktop icon. These will be covered later.
-
- Piano also requires that GENMIDI.DLL (included in this archive) be copied to
- some directory along the path specified by the LIBPATH statement in your
- config.sys file. Often, placing it in the same directory to which PIANO.EXE is
- copied will suffice.
-
-
- ΓòÉΓòÉΓòÉ 4. Options ΓòÉΓòÉΓòÉ
-
- When starting Piano, there are a number of optional parameters that can be
- specified. If running Piano from a Command Prompt Window, then add the
- parameters to the command line. If running Piano from a Presentation Manager
- Object (ie, icon), then open up the Settings menu for that object, and in the
- Parameters field, type the desired options (ie, where you also put the driver
- name). Now whenever you run Piano from the Desktop, it will use those options.
- You could even create several program objects (by copying the Program object in
- OS/2's Template folder), and give each one different options tailored for
- various MIDI devices (and also give each object a unique name). For example,
- to specify the unit MPUDEV2$ with channel 7:
-
- MPUDEV2$ /C7
-
- You may want to specify the /I switch when invoking the program if you don't
- desire the card to be reset when Piano starts up. The RAP-10's entire GM
- module will be reset to default values otherwise. For example, to use a driver
- called "RAP10", skipping initialization.
-
- RAP10 /I
-
- Some sound cards, such as the RAP-10, have a built-in General MIDI (GM) sound
- module. The module will not play MIDI messages sent to it until it receives a
- "Turn GM Sound On" MIDI System Exclusive Message (although the card may still
- pass MIDI messages on to its MIDI OUT jack). Initially, Piano will send such a
- MIDI message unless you specify the /G option. This will prevent Piano from
- turning on the GM Sound Module (if you desire) of a card that supports this
- MIDI message.
-
- By default, Piano starts with only MIDI channel 1 selected. You can override
- this, and specify which MIDI channel(s) that Piano should select upon startup.
- You specify the /C option, and then follow this with the desired MIDI channels
- to select, each separated by a comma. For example, to select channels 3 and 4
- initially:
-
- /C3,4
-
- By default, Piano starts with mouse button 2 emulating a Hold Pedal. You can
- specify a different controller for mouse button 2 to emulate via the /B2
- option. Follow the option with a comma, and then the new controller number (in
- decimal). For example, to specify the Hold2 Pedal Controller (ie, 69) for
- mouse button 2:
-
- /B2,69
-
- By default, Piano starts with mouse button 3 emulating a Portamento On/Off
- switch. You can specify a different controller for mouse button 3 to emulate
- via the /B3 option. Follow the option with a comma, and then the new
- controller number (in decimal). For example, to specify the Data Increment
- (Button) Controller (ie, 96) for mouse button 3:
-
- /B3,96
-
- By default, Piano starts with the "Effect" slider (ie, 2nd slider from the top
- of the window) set to send Effects Level Controller (#91). You can specify a
- different controller for this slider via the /B1 option. Follow the option
- with a comma, and then the new controller number (in decimal). For example, to
- specify the Breath (ie, Wind) Coarse Controller (ie, 2) for this slider:
-
- /B1,2
-
- For the mouse button 2 and 3, and "Effect" slider, you can also specify the
- controller name (ie, as it appears in Piano's drop down list). For example,
- instead of controller #69, you can specify "Hold2". If the controller name has
- an imbedded space, such as "Genr 1", then enclose the option in parentheses,
- such as:
-
- "/B1,Genr 1"
-
- Initially, Piano also sends out All Notes Off and Reset Controllers MIDI
- messages on the selected MIDI channels. On MIDI devices that acknowledge these
- messages, this turns off any sounding notes, and usually resets the Pitch Wheel
- to center, the MOD wheel to 0 (ie, off), releases the Hold Pedal, turns off any
- Pressure or Aftertouch effects, and may reset other controllers. (Check your
- device's MIDI implementation chart for its response to the Reset Controllers
- MIDI message). If you don't want Piano to send these messages initially, then
- specify the /Z option. If you specify this option, note that the state of
- Piano's sliders and Program may not reflect the true state of the MIDI device.
- Of course, you can always press Piano's Reset button to force the MIDI device
- to be set to the state of Piano's sliders and buttons, but this also sets the
- sliders to default values as well as turning off the controllers associated
- with Mouse 2 and Mouse 3.
-
- Note: You can specify options (and the driver name) in any order. For options
- that require additional text, such as the /C option, you must not leave
- blank spaces between the option and additional text, unless you enclose
- the entire option in quotes.
-
-
- ΓòÉΓòÉΓòÉ 5. MultiTimbral Modules ΓòÉΓòÉΓòÉ
-
- Some MIDI modules are "multi-timbral". This means that the module can listen
- to all 16 MIDI channels, and play any 16 of its "patches" simultaneously, with
- each of the 16 patches set to a different MIDI channel. It's as if the module
- had 16 smaller modules inside of it, with each being able to play a patch on
- its own MIDI channel.
-
- So is there a name for these 16 "sub-modules" inside of your MIDI module?
- Well, different manufacturers refer to them in different ways, and I'm going to
- use the Roland preference, a Part. A Roland multi-timbral module has 16 Parts
- inside of it, and each usually has its own settings for such things as Volume,
- Panning, Reverb and Chorus levels, Brightness, and its MIDI channel (ie, which
- MIDI data the Part "plays"). Furthermore, each Part has its own way of
- reacting to MIDI data such as Channel Pressure (often used to adjust volume or
- brightness), MOD Wheel controller (often used for a vibrato effect), and Pitch
- Wheel (used to slide the pitch up and down). For example, one Part can cause
- its patch to sound brighter when it receives Channel Pressure messages that
- increase in value. On the other hand, another Part could make its volume
- increase when it receives increasing Channel Pressure messages. These Parts
- are completely independent of each other. Just because one Part is receiving a
- Pitch Wheel message and bending its pitch doesn't mean that another Part has to
- do the same.
-
-
- ΓòÉΓòÉΓòÉ 6. General MIDI Standard ΓòÉΓòÉΓòÉ
-
- Nowadays, most MIDI modules have specific Patches setup in a specific order
- according to a standard known as General MIDI (or GM). All this means is that
- on every GM module, a Piano patch must be the very first patch. Patch #49 must
- be a Flute. Patch #25 must be a Nylon String Guitar. Etc. There are 128
- defined patches that a GM module must have, in the proper order.
-
- Note: When you drop down the list box for Piano's Program, you'll see all 128
- GM Patch names.
-
- Furthermore, all patches must sound a middle C when receiving a MIDI note
- number of 60. This corresponds to setting the QWERTY Octave to 6 and pressing
- the z key.
-
- If the GM module also has a built-in "drum module" (ie, usually one of 16
- Parts), then each of that Drum Part's MIDI notes triggers a different drum
- sound. Particular drum sounds are assigned to particular MIDI note numbers.
- For example, a Closed HiHat sound is set to note number 42. The Drum Part is
- usually set to receive MIDI data on channel 10, and some devices with a
- built-in drum module have this module permanently set to MIDI channel 10.
-
- Note: The QWERTY keyboard counts its octaves from 1. Most MIDI devices count
- their octaves from -2. What this means is that, to play the Snare 1
- sound, which is a D2 (ie, a D note in octave 2), set the QWERTY keyboard
- to octave 4 (ie, 2 octaves higher than written) and play the z key (ie,
- a D note).
-
-
- ΓòÉΓòÉΓòÉ 7. Piano Window ΓòÉΓòÉΓòÉ
-
- When run, Piano opens a Presentation Manager window that has a number of
- controls that you can operate to do 2 things:
-
- 1. Setup how the QWERTY (computer) keyboard operates. These controls don't
- change settings on your MIDI modules, but rather, affect how your computer
- controls those modules. In other words, if your computer was a real MIDI
- controller, it would need some means of setting itself to a particular MIDI
- channel(s), and perhaps offer features such as being able to transpose its
- "piano keyboard" (if it were a keyboard controller), etc. These controls
- setup the controller, rather than the external modules that are slaved to
- the controller.
-
- 2. Directly generate MIDI events with sliders, buttons, and the QWERTY
- keyboard. These MIDI events are what control and change settings on the
- external modules.
-
- You exit Piano by selecting Close from its System Menu, or double-clicking on
- the window upper left corner icon.
-
-
- ΓòÉΓòÉΓòÉ 7.1. QWERTY Keyboard ΓòÉΓòÉΓòÉ
-
- The QWERTY keyboard is just the bottom 2 rows of your computer keyboard, which
- are setup as if they were the black and white keys on a piano keyboard. The z
- key corresponds to a D note. Therefore, the x key next to it would correspond
- to a E note. You'll note that the s key is above and inbetween the z and x
- keys. As you might expect, this would be a D# key. The left SHIFT key is the
- C key. This physical piano keyboard extends all of the way up to the right
- SHIFT key which represents a high G. In other words, it has an octave and a
- half range.
-
- When you press down one of these keys, it sends a MIDI Note On message to your
- MIDI interface on each of the MIDI channels that you have selected. The net
- result is that it will play this one note on each sound module that is assigned
- to one of those selected MIDI channels.
-
- Note: By default, the QWERTY keyboard is set to output MIDI data on only MIDI
- Channel 1 (unless you specify the /C option when starting Piano). If
- your external module allows you to set its MIDI channel, make sure that
- it is set to the same channel as the QWERTY keyboard (or vice versa).
-
- You can even press down several keys simultaneously and play a chord. For
- example, press the left SHIFT, x, and v keys simultaneously to hear a C Major
- chord. When you release the keys, the QWERTY keyboard sends the appropriate
- Note Off messages to your MIDI interface on each of the selected MIDI channels.
-
- You'll notice that there is a picture of a piano keyboard in the QWERTY window.
- You can move the mouse pointer over one of the keys on this graphical piano,
- and click the mouse button 1 to sound that note (ie, in lieu of using the
- computer keyboard). When you release the mouse button, the note stops playing.
- (ie, A Note Off is sent).
-
- There is a checkbox for each of the 16 MIDI Channels. Make sure that a
- channel's box is checked if you want the QWERTY keyboard to output upon that
- channel. You can check as many of those channels as desired, and the QWERTY
- keyboard will broadcast its notes on all of those channels simultaneously.
- Because the QWERTY keyboard is "multi-channel", it allows you to play any
- combination of sound modules (set to various MIDI channels), at any time. So,
- you could use the QWERTY keyboard to easily play all of your MIDI modules or
- check the setup of those modules.
-
- Note: You must have at least one channel selected in order for any MIDI
- messages to be sent.
-
- By default, the left SHIFT key is middle C, but you can change the octave that
- the QWERTY keyboard plays within by using the Octave spin button. Click on
- either the up or down arrows to increment/decrement the octave, or click into
- the text field, type the desired octave (1 to 10), and press ENTER.
-
- If you ever get any "stuck" notes, use the All Notes Off button to turn them
- off. Holding the Ctrl key while pressing the n key on your computer keyboard
- is a shortcut for clicking upon the All Notes Off button. If you really get
- into big trouble with stuck notes, and odd controller settings, click on the
- Reset button. Holding the Ctrl key while pressing the r key on your computer
- keyboard is a shortcut for clicking upon the Reset button.
-
- By default, MIDI Note On messages are sent with a velocity of 127 (ie, the
- highest possible velocity). Generally, velocity is used to set the volume on a
- per note basis, although some modules can use velocity for other effects such
- as adjust attack time of a voltage controlled generator (VCA). Your computer
- keyboard does not generate velocity information (which is how fast you press
- and release the keys). Piano allows you to set the QWERTY keyboard to one of
- 12 preset velocity ranges. The 12 Function keys represent those 12 levels,
- with function key 12 being full velocity (ie, 127). So, you can change the
- velocity while you're playing by pressing the function keys.
-
-
- ΓòÉΓòÉΓòÉ 7.2. MIDI (Mouse) Buttons and Effect Slider ΓòÉΓòÉΓòÉ
-
- Mouse button 1 is always used to play the graphical piano, or manipulate
- Piano's window and controls.
-
- By default, mouse button 2 simulates a Hold Pedal, and sends MIDI Hold Pedal
- Controller messages. When you push the button down (and hold it down), the
- hold pedal is on. When you release the button, the hold pedal is also
- released. In other words, this is a "momentary pedal" because it's only on
- while you hold the button down. You can specify a different controller for
- mouse button 2 to emulate by using the Mouse 2 control. See the Mouse 2
- section for details.
-
- By default, mouse button 3 simulates a Portamento On/Off switch, and sends MIDI
- Portamento On/Off Controller messages. When you push the button down,
- Portamento is toggled on or off (ie, if it was previously off, it's now on, and
- vice versa). This is not a momentary pedal because, when you toggle it on, it
- stays on until you press mouse button 3 again (at which time it is toggled
- off). When the switch is "on", an asterisk appears next to the controller name
- selected for Mouse 3. If the switch is off, there is no asterisk. You can
- specify a different controller for mouse button 3 to emulate by using the Mouse
- 3 control. See the Mouse 3 section for details.
-
- By default, the "Effect" slider (ie, 2nd slider from the top of the window)
- sends MIDI Effects Level Controller (#91). Various MIDI devices may interpret
- this in different ways (if at all). For example, Roland devices that have a
- built-in reverb unit often use this for the reverb level. You can specify a
- different controller for this slider by typing the desired Controller number
- (in decimal) or Controller name into the entry field next to the slider, or
- dropping down the list of defined Controller names and selecting one.
-
- Mouse button 2 is good for emulating controllers that normally are associated
- with momentary Pedals, such as Hold, Hold2, Soft, and Sustenuto pedals, whereas
- button 3 is good for controllers normally associated with Foot Switches, such
- as Data +/-, Portamento On/Off, Local keyboard On/Off, etc. The "Effect"
- slider is suited for continuous MIDI controllers; controllers that have more
- than just an "on" and "off" state, such as Breath controller, Mod wheel, Foot
- pedal, PTme (Portamento time), etc.
-
- Any continuous controller has both a coarse and fine controller number. For
- example, there is a controller number (10) that adjusts the Pan Position in
- coarse amounts. It offers 128 "coarse" Pan positions. There is another
- controller number (42) that adjusts Pan in fine increments. It offers 128
- "fine" increments in between two, consecutive coarse settings. So, you could
- use the Pan coarse controller to set a sound to one of the 128 coarse
- positions, and then use the Pan fine controller to adjust the Pan to one of the
- 128 fine increments that fall between the current coarse position and the next
- coarse position. Some MIDI devices only respond to the coarse controllers and
- do not implement the fine controllers (ie, for example, a device may only
- implement the 128 coarse pan positions, and allow no fine adjustments to
- those). In Piano's drop down list of defined controllers, an H at the end of
- the name refers to coarse (ie, high resolution) controller, and an L refers to
- fine (ie, low resolution) controller.
-
-
- ΓòÉΓòÉΓòÉ 7.3. MIDI Sliders ΓòÉΓòÉΓòÉ
-
- As mentioned, Piano generates MIDI Note On and Note Off messages on the
- selected MIDI channels when you play the QWERTY keyboard. Virtually all MIDI
- modules respond to these messages. But, there are many more types of MIDI
- messages that Piano can generate and send to your MIDI module. The sliders on
- the left side of the window generate some of these different types of MIDI
- messages.
-
- Note: Not all MIDI sound modules respond to all of these types of MIDI
- messages. In particular, old and very cheap equipment may not respond
- to any of these messages. If you get a response to the QWERTY keyboard
- (ie, the MIDI module makes some sound), but a particular slider doesn't
- seem to be having any effect, then you're probably dealing with such
- limited equipment. On the other hand, sophisticated gear often allows
- you to turn on/off the module's response to these types of messages, so
- check your unit's setup.
-
- You operate a slider by "grabbing" its knob with mouse button 1 and moving it
- to a new position. You have to "let go" (ie, release the mouse button) before
- Piano sends out any MIDI message (and you perhaps hear the result on your MIDI
- sound module). Alternately, if you want to increment/decrement the knob's
- position, move the mouse pointer inside of the slider's shaft, but not on top
- of the knob itself (ie, to either side of the knob), and click the mouse button
- 1 once. If you're to the left of the knob, it will decrement by 1 position,
- and a MIDI message will be sent. If you're to the right of the knob, it will
- increment by 1 position, and a MIDI message will be sent.
-
- Note: Each slider has a small arrow above it. (The arrow may be in different
- positions on different sliders). This arrow marks the default position
- of the slider. If you want to quickly set the slider to this default
- position, click on that arrow, and the knob will move to that position,
- and send out an appropriate MIDI message. This is very handy for such
- things as Pan and Pitch since the default is to center the Pan and Pitch
- wheel. Note that when Piano is first started or when you change the
- MIDI channel checkboxes, the settings shown for the sliders may not
- reflect the actual state of your external MIDI modules. You could click
- on a default arrow in order to send a slider's setting to your module,
- or use the Reset button.
-
- You can hold down a key on the QWERTY keyboard to sound a note on your external
- module. Then, without releasing the key (ie, so that the note on the external
- module is still sounding), you can operate a slider. If your external unit
- responds to such a MIDI message while sounding a note, then you will hear the
- result on the currently sounding note. In fact, that's really how AfterTouch
- and Channel Pressure are meant to be applied. Some modules won't make changes
- to any already sounding notes, so you'll have to release the note and play it
- again in order to hear the results of moving a slider. You don't have to be
- playing a note when you move a slider. You can simply move the slider, and
- then play a note to hear the result. It's just that moving a slider while
- listening to a note sounding can give you a much clearer sonic idea of what
- that slider is doing to the sound (assuming that your module responds to the
- slider's MIDI messages).
-
- Note: Remember that if you "grab and move" the slider's knob with the mouse,
- you must eventually "let go" of the knob in order for Piano to send any
- MIDI message.
-
- Some modules use AfterTouch and Channel Pressure to affect the Brightness of
- the sound (ie, Filter cutoff), or Volume, or some other such parameter.
- Normally, AfterTouch and Channel Pressure are generated by pressing harder and
- softer on the piano keyboard while you're holding down a note. Obviously, your
- computer's keyboard doesn't generate AfterTouch and Channel Pressure. If you
- press down harder, you'll only break it. So, when you release notes after
- having adjusted the AfterTouch or Pressure sliders, you may wish to click on
- the respective default arrow to turn the effect off (which is what would happen
- as you released the keys on a real controller). If you're adjusting the
- AfterTouch slider, you should only play one note at a time, and reset
- AfterTouch to default upon releasing each note, since AfterTouch only works on
- the last key that you've played (ie, Piano doesn't fully implement Aftertouch).
- The Reset button also resets AfterTouch and Channel Pressure (as well as the
- other sliders).
-
-
- ΓòÉΓòÉΓòÉ 7.4. Controls ΓòÉΓòÉΓòÉ
-
- What follows is a description of the controls in the Piano window; what they
- control, and additional notes about any MIDI information that they send.
-
-
- ΓòÉΓòÉΓòÉ 7.4.1. Program ΓòÉΓòÉΓòÉ
-
- Affects Which one of its Patches, Presets, or Instruments the MIDI
- module will play. If the module is a MultiTimbral unit, then it
- usually can play 16 "Parts" at once, each receiving data upon
- its own MIDI channel. This changes all Parts (which are set to
- one of the selected MIDI channels) to use that one chosen GM
- Patch.
-
- Note: If a module's Part receives a Program Change message on
- the channel to which it is assigned, then its Patch will
- change to the program number embedded in that message.
- For example, assume that a Part is set to MIDI channel 1,
- and its Patch is set to Grand Piano. If a Program Change
- message with a program number of 41 is sent on MIDI
- channel 1, then the Part will switch to the Violin (ie,
- which is GM Patch #41). A Program Change can be sent
- while the Part is playing -- even while the Part is
- playing some Grand Piano notes. The Part will simply
- play subsequent MIDI notes using the new Patch.
-
- Range One of the 128 GM Patches. You pick out which one from the list
- box (by clicking on it), or type in the desired Patch name and
- press the ENTER key. If you prefer to deal with numbers,
- especially if you're dealing with a non-GM MIDI device, you can
- instead type in the desired Patch number (where 1 is the first
- Patch) and press the ENTER key. In this case, Piano will always
- display the respective GM Patch name. If you type in the Patch
- name, you may enter only as many characters as are needed for
- Piano to find a matching name. For example, if you type "Gran"
- (or "Piano") and press ENTER, then Piano will match this as
- "Grand Piano". If you type "harp" and press ENTER, Piano will
- match this with "Harpsichord" (since that comes before "Harp").
-
- Holding the Ctrl key while pressing the p key on your computer
- keyboard is a shortcut for clicking upon the Program control to
- change it.
-
- Note: It doesn't matter whether you type the name in upper or
- lower case.
-
-
- ΓòÉΓòÉΓòÉ 7.4.2. Pan ΓòÉΓòÉΓòÉ
-
- Affects Where within the stereo field the module will be placed. If the
- module is a MultiTimbral unit, then each one of its Parts
- usually has its own pan position. This changes the pan of all
- Parts assigned to one of the selected MIDI channels.
-
- Note: If the Part receives a Pan Controller message on the
- channel to which it is assigned, then its pan will change
- to the value embedded in that message. For example,
- assume that a Part is set to MIDI channel 1, and is
- panned hard left. If a Pan Controller message with a
- value of 64 (ie, center) is sent on MIDI channel 1, then
- the Part's sound will switch to center position. A Pan
- Controller can be sent while the Part is playing -- even
- while the Part is playing some notes. The Part will
- simply play with a new pan position.
-
- Range 128 possible positions, with 0 being hard left, 64 being center,
- and 127 being hard right. You must center the slider's knob for
- center pan (ie, where the default arrow is), and moving the knob
- to the left or right pans in those directions respectively.
- (This is the coarse controller for Pan).
-
-
- ΓòÉΓòÉΓòÉ 7.4.3. Chorus ΓòÉΓòÉΓòÉ
-
- Affects The chorus effect amount (ie, level) for the module. If the
- module is a MultiTimbral unit, then each one of its Parts
- usually has its own chorus level. This changes the chorus level
- of all Parts assigned to one of the selected MIDI channels.
-
- Note: If the Part receives a Chorus Controller message on the
- channel to which it is assigned, then its Chorus Level
- will change to the value embedded in that message. For
- example, assume that a Part is set to MIDI channel 1, and
- has a Chorus Level of 64. If a Chorus Controller message
- with a value of 0 is sent on MIDI channel 1, then the
- Part will switch to having no chorus (ie, chorus
- level=0). A Chorus Controller can be sent while the Part
- is playing -- even while the Part is playing some notes.
- The Part will simply play with a new chorus effect level.
-
- Range 0 to 127, with 0 being no chorus effect applied at all. Moving
- the fader all the way to the left gives a chorus level of 0.
-
-
- ΓòÉΓòÉΓòÉ 7.4.4. Volume ΓòÉΓòÉΓòÉ
-
- Affects The MIDI module's volume. If the module is a MultiTimbral unit,
- then each one of its Parts usually has its own volume. This
- changes the volumes of all Parts assigned to one of the selected
- MIDI channels.
-
- Note: If a Part receives a Volume Controller message on the
- channel to which it is assigned, then its Volume will
- change to the value embedded in that message. For
- example, assume that a Part is set to MIDI channel 1, and
- has a Volume of 127. If a Volume Controller message with
- a value of 64 is sent on MIDI channel 1, then the Part's
- volume will drop by half. A Volume Controller can be
- sent while the Part is playing -- even while the Part is
- playing some notes. The Part will simply play with a new
- Volume.
-
- Range 0 to 127, with 0 being no volume at all. Moving the fader all
- the way to the left gives a volume of 0. (This is the coarse
- controller for volume).
-
-
- ΓòÉΓòÉΓòÉ 7.4.5. MOD Wheel ΓòÉΓòÉΓòÉ
-
- Affects Sends MOD Wheel messages to the MIDI module. If the module is a
- MultiTimbral unit, then each one of its Parts may respond
- differently (or not at all) to MOD Wheel. This sends a MOD
- Wheel message to all Parts assigned to one of the selected MIDI
- channels.
-
- Note: If a Part receives a MOD Wheel Controller message on the
- channel to which it is assigned, then it may or may not
- do something depending upon how the Part is set to
- respond to this message. Usually, MOD Wheel introduces
- some sort of vibrato effect. For example, assume that a
- Part is set to MIDI channel 1. If a MOD Wheel Controller
- message with a value of 64 is sent on MIDI channel 1,
- then a medium vibrato effect may be applied to the Part's
- sound. A MOD Wheel Controller can be sent while the Part
- is playing -- even while the Part is playing some notes.
- A vibrato effect will simply be applied to any sounding
- notes.
-
- Range 0 to 127, with 0 being no modulation. (This is the coarse
- controller for MOD wheel).
-
-
- ΓòÉΓòÉΓòÉ 7.4.6. Pitch Wheel ΓòÉΓòÉΓòÉ
-
- Affects Sends Pitch Wheel messages to the MIDI module. If the module is
- a MultiTimbral unit, then each one of its Parts may or may not
- respond to Pitch Wheel. This sends a Pitch Wheel message to all
- Parts assigned to one of the selected MIDI channels.
-
- Note: If a Part receives a Pitch Wheel message on the channel
- to which it is assigned, then it may or may shift its
- pitch up/down depending upon whether the Part is set to
- respond to this message. A value of 64 (MSB only) is
- centered pitch, and values below that shift the pitch
- downward, whereas values above shift the pitch upward.
- For example, assume that a Part is set to MIDI channel 1.
- If a Pitch Wheel message with a value of 95 (MSB only) is
- sent on MIDI channel 1, then the pitch shifts upward. A
- Pitch Wheel can be sent while the Part is playing -- even
- while the Part is playing some notes. The pitch will
- simply shift accordingly.
-
- Range 0 to 127, with 64 being no pitch shift (ie, center position).
-
- Note: Piano only sends the MSB of Pitch Wheel. In other words,
- its a coarse adjustment only.
-
-
- ΓòÉΓòÉΓòÉ 7.4.7. Pressure ΓòÉΓòÉΓòÉ
-
- Affects Sends Channel Pressure messages to the MIDI module. If the
- module is a MultiTimbral unit, then each one of its Parts may
- respond differently (or not at all) to Channel Pressure. This
- sends a Channel Pressure message to all Parts assigned to one of
- the selected MIDI channels.
-
- Note: If a Part receives a Channel Pressure message on the
- channel to which it is assigned, then it may or may not
- do something depending upon how the Part is set to
- respond to this message. Usually, Channel Pressure
- adjusts the brightness (ie, filter cutoff), the volume,
- and/or introduces some sort of vibrato effect. For
- example, assume that a Part is set to MIDI channel 1. If
- a Channel Pressure message with a value of 64 is sent on
- MIDI channel 1, then a medium vibrato effect may be
- applied to the Part's sound. Channel Pressure can be
- sent while the Part is playing -- even while the Part is
- playing some notes. Some effect will simply be applied
- to any sounding notes. Indeed, Channel Pressure is
- usually generated by pressing harder or softer on the
- keys while holding them down (ie, so you are playing some
- notes). So, Channel Pressure is meant to affect sounding
- notes in some way.
-
- Range 0 to 127, with 0 being no channel pressure (ie, off).
-
-
- ΓòÉΓòÉΓòÉ 7.4.8. AfterTouch ΓòÉΓòÉΓòÉ
-
- Affects Sends AfterTouch messages (sometimes referred to as Key
- Pressure) to the MIDI module. If the module is a MultiTimbral
- unit, then each one of its Parts may respond differently (or not
- at all) to these messages. This sends an AfterTouch message to
- all Parts assigned to one of the selected MIDI channels.
-
- Note: If a Part receives an AfterTouch message on the channel
- to which it is assigned, then it may or may not do
- something depending upon how the Part is set to respond
- to this message. Usually, AfterTouch adjusts the
- brightness (ie, filter cutoff), the volume, and/or
- introduces some sort of vibrato effect. For example,
- assume that a Part is set to MIDI channel 1. If an
- AfterTouch message with a value of 64 is sent on MIDI
- channel 1, then a medium vibrato effect may be applied
- one of the Part's sounding notes. AfterTouch can be sent
- while the Part is playing -- even while the Part is
- playing some notes. Some effect will simply be applied
- to the note corresponding to the message. Indeed,
- AfterTouch is usually generated by pressing harder or
- softer on a key while holding it down (ie, so you are
- playing a note). So, AfterTouch is meant to affect a
- sounding note in some way. What's the difference between
- AfterTouch and Channel Pressure? Well, AfterTouch
- messages are for individual keys. Every key that you
- press down generates its own AfterTouch messages. If you
- press on one key harder than another, then the one key
- will generate AfterTouch messages with higher values than
- the other key. The net result is that some effect will
- be applied to the one key more than the other key. You
- have individual control over each key that you play.
- With Channel Pressure, one message is sent out for the
- entire keyboard. So, if you press one key harder than
- another, the module will average out the difference, and
- then just pretend that you're pressing both keys with the
- exact same pressure. The net result is that some effect
- gets applied to all sounding keys evenly. You don't have
- individual control per each key. A controller would use
- either Channel Pressure or AfterTouch, but usually not
- both. Most MIDI controllers don't generate AfterTouch
- because the circuitry required is a bit too costly.
- Piano's QWERTY keyboard is no exception. (Hey, you got
- it free. What do you expect?). It only generates
- AfterTouch messages for the last key that you play. If
- you play a chord, only one of the notes gets the
- AfterTouch effect when you move the slider (ie, the last
- one that you pressed down). Ideally, there should be
- AfterTouch messages happening for each key being held
- down, but that's irrelevant here because your computer
- keyboard doesn't have some way of detecting pressure for
- each key, and it would be impractical to be adjusting an
- AfterTouch slider for every key that you hold down. You
- should avoid playing chords while adjusting the
- AfterTouch slider. If you do, you may need to Reset in
- order to clear aftertouch from all of the keys that you
- played.
-
- Range 0 to 127, with 0 being no aftertouch (ie, off).
-
-
- ΓòÉΓòÉΓòÉ 7.4.9. Effect ΓòÉΓòÉΓòÉ
-
- Affects This slider can be set to emulate any one of the 128 possible
- MIDI controllers. By default, it emulates the effects level for
- the module. If the module is a MultiTimbral unit, then each one
- of its Parts usually has its own effects level. This changes
- the effects level of all Parts assigned to one of the selected
- MIDI channels. Various MIDI devices may respond to effects
- controller differently (if at all). Some Roland devices with a
- built-in reverb unit, use Effects controller to set the reverb
- amount.
-
- Note: If the Part receives a MIDI Effects Controller message on
- the channel to which it is assigned, and the device uses
- that to adjust reverb amount, then its Reverb Level will
- change to the value embedded in that message. For
- example, assume that a Part is set to MIDI channel 1, and
- has a Reverb Level of 64. If an Effects Controller
- message with a value of 0 is sent on MIDI channel 1, then
- the Part will switch to having no reverb (ie, reverb
- level=0). An Effects Controller can be sent while the
- Part is playing -- even while the Part is playing some
- notes. The Part will simply play with a new reverb
- level.
-
- When you select a new controller for the Effect slider, this new
- controller is initially set to whatever value the slider is set
- to (ie, if the slider is all of the way to the right, then the
- controller's value is set to 127).
-
- Range 0 to 127, with 0 being no effects applied at all. Moving the
- fader all the way to the left gives an effects level of 0.
-
-
- ΓòÉΓòÉΓòÉ 7.4.10. All Notes Off ΓòÉΓòÉΓòÉ
-
- Affects This button sends Note Off messages to the MIDI module for any
- notes that Piano thinks are still "on". Due to the way that
- Presentation Manager works, it's possible for Piano to not "see"
- a mouse button up message (ie, some other app may get it).
- Clicking on this button forces Piano to turn off all notes that
- it played and didn't turn off even though you may no longer be
- pressing the mouse button over the graphical piano, or holding
- down a key on the computer.
-
- Piano also sends All Notes Off Controller and All Sound Off
- Controller messages on the MIDI channels that you have selected,
- as an extra precaution to turn off any "stuck notes". See the
- remarks about such in the Reset description.
-
-
- ΓòÉΓòÉΓòÉ 7.4.11. Reset ΓòÉΓòÉΓòÉ
-
- Affects This is a more drastic reset than the All Notes Off button. The
- latter button only turns off notes. This button also resets
- various controllers to default values, and resets the Program on
- the MIDI channels that you have selected.
-
- This button sends All Notes Off Controller, All Sound Off
- Controller, and Reset Controllers messages on all 16 MIDI
- channels. Note that some older or cheap MIDI gear does not
- implement some of these special controller messages. (ie, On
- some gear, you have to send an individual MIDI Note Off message
- for each note that you wish turned off. This is an archaic and
- slow way of turning off "stuck notes". Piano doesn't bother
- with that. Likewise, some gear doesn't implement Reset
- Controllers, and wants individual controller messages for each
- controller that you wish to reset. Piano does initialize the
- MIDI parameters associated with the 8 sliders (ie, Volume, MOD,
- PITCH, etc) as well as the Mouse 2 and Mouse 3 controllers
- regardless of whether a device understands the Reset Controllers
- message, but other controllers may not be reset. You'll have to
- reset those manually. Piano resets the sliders to default
- values, and turns off the controllers for Mouse 2 and Mouse 3.
- Finally, this button causes the Program to be changed on all of
- the selected MIDI channels, to that program displayed in Piano's
- Program control.
-
-
- ΓòÉΓòÉΓòÉ 7.4.12. Octave ΓòÉΓòÉΓòÉ
-
- Affects The note range that the QWERTY piano (and graphical piano) plays
- back. In other words, this transposes Piano's note range an
- octave at a time.
-
- Note: The QWERTY keyboard counts its octaves from 1. Most MIDI
- devices count their octaves from -2. What this means is
- that, to play a middle C (MIDI note number 60), set
- Octave to 4 and play the z key (ie, a C note) or click on
- the leftmost C of the graphical piano.
-
-
- Holding the Ctrl key while pressing the o key on your computer keyboard is a
- shortcut for clicking upon the Octave control to change it.
-
-
- ΓòÉΓòÉΓòÉ 7.4.13. Mouse 2 ΓòÉΓòÉΓòÉ
-
- Affects The controller that is sent (on the selected MIDI channels)
- every time that you press and release mouse button 2. You can
- choose any one of the possible 128 MIDI Controllers. 48 of
- these 128 Controllers are defined for specific purposes, and
- have "names". If you drop down the list box for Mouse 2, you'll
- see those defined controller names. You can choose one of these
- (by clicking on the name, or typing the name), or you can type
- in the desired controller number (from 0 to 127 decimal).
-
- If you type in the Controller name, you may enter only as many
- characters as are needed for Piano to find a matching name. For
- example, if you type "Por" and press ENTER, then Piano will
- match this as "Porta" (ie, Portamento On/Off). If you type
- "Mod" and press ENTER, Piano will match this with "Mod H" (since
- that comes before "Mod L"). It doesn't matter whether you type
- the name in upper or lower case.
-
- When you select a new controller for Mouse 2, this new
- controller is initially set to 0 (ie, turned off).
-
- Holding the Ctrl key while pressing the 2 key on your computer
- keyboard is a shortcut for clicking upon the Mouse 2 control to
- change it.
-
- Note: Consult my OS/2 online book, "The MIDI Book" for
- descriptions of all the defined MIDI controllers.
-
-
- ΓòÉΓòÉΓòÉ 7.4.14. Mouse 3 ΓòÉΓòÉΓòÉ
-
- Affects The controller that is sent (on the selected MIDI channels)
- every time that you press mouse button 3. You can choose any
- one of the possible 128 MIDI Controllers. 48 of these 128
- Controllers are defined for specific purposes, and have "names".
- If you drop down the list box for Mouse 3, you'll see those
- defined controller names. You can choose one of these (by
- clicking on the name, or typing the name), or you can type in
- the desired controller number (from 0 to 127 decimal).
-
- If you type in the Controller name, you may enter only as many
- characters as are needed for Piano to find a matching name. For
- example, if you type "Por" and press ENTER, then Piano will
- match this as "Porta" (ie, Portamento On/Off). If you type
- "Mod" and press ENTER, Piano will match this with "Mod H" (since
- that comes before "Mod L"). It doesn't matter whether you type
- the name in upper or lower case.
-
- When you select a new controller for Mouse 3, this new
- controller is initially set to 0 (ie, turned off).
-
- Holding the Ctrl key while pressing the 3 key on your computer
- keyboard is a shortcut for clicking upon the Mouse 3 control to
- change it.
-
- Note: Consult my OS/2 online book, "The MIDI Book" for
- descriptions of all the defined MIDI controllers.
-
-
- ΓòÉΓòÉΓòÉ 7.4.15. Port ΓòÉΓòÉΓòÉ
-
- Affects The driver (and therefore MIDI interface card) that Piano
- outputs MIDI messages through. If you drop down the list box
- for Port, you'll see that the 4 available ports of MPUDEV.SYS
- are listed. You can choose one of these (by clicking on the
- name, or typing the name), or you can type in some other driver
- name.
-
- If you have not disabled Driver Initialization (ie, not
- specified the /I option) then Piano will attempt to initialize
- the driver/hardware via the protocol used by my MPUDEV.SYS
- driver.
-
- If you have not disabled turning on GM mode (ie, not specified
- the /G option) then Piano will attempt to kick the module into
- General MIDI mode.
-
- Holding the Ctrl key while pressing the t key on your computer
- keyboard is a shortcut for clicking upon the Port control to
- change it.
-
- Note: If the port that you specify can't be opened, Piano will
- retain the previously opened port for MIDI output.
-
-
- ΓòÉΓòÉΓòÉ 7.4.16. Initialize ΓòÉΓòÉΓòÉ
-
- Affects Initialization of the MIDI driver that Piano outputs MIDI
- messages through. If you check the Initialize box, then Piano
- assumes that, everytime a driver is opened, Piano needs to reset
- the driver and card using a protocol that my MPUDEV.SYS driver
- establishes. If you aren't using an MPUDEV compatible driver,
- or don't want the driver and card to be reset whenever a driver
- is opened, you should turn Initialize off.
-
- Holding the Ctrl key while pressing the i key on your computer
- keyboard is a shortcut for selecting the Initialize checkbox,
- and then pressing the SPACE BAR toggles it on/off.
-
-
- ΓòÉΓòÉΓòÉ 7.4.17. GM Enable ΓòÉΓòÉΓòÉ
-
- Affects Initialization of a GM MIDI sound module attached to Piano's
- Port. Whenever you check the GM Enable box, then Piano issues a
- System Exclusive command to set a sound module into General MIDI
- mode. (ie, You can force Piano to send this message by turning
- the check off, and then turning it back on again). If this box
- is checked when you select a new Port, then Piano sends the GM
- message out that new Port.
-
- Holding the Ctrl key while pressing the g key on your computer
- keyboard is a shortcut for selecting the GM Enable checkbox, and
- then pressing the SPACE BAR toggles it on/off.
-
-
- ΓòÉΓòÉΓòÉ 8. Driver Sharing ΓòÉΓòÉΓòÉ
-
- Piano allows shared access to a driver. (ie, Another program may output MIDI
- data to, or read MIDI data from, that driver while Piano is running, and even
- while using Piano to play the module).
-
- Piano doesn't input any MIDI data, and therefore should not cause a problem for
- any program that only reads from the same driver (ie, doesn't write to it), nor
- will that program cause a problem for Piano,
-
- Shared MIDI output is usually fine, since when programs are "sitting idle",
- they usually aren't writing to the driver. So, it's generally OK to
- simultaneously run two programs that do MIDI output to the same driver, as long
- as both programs aren't performing such operations simultaneously (ie, one
- program is "sitting idle" while the other is performing an operation that
- causes MIDI data to be output). Piano sits idle when you are not actually
- moving its sliders, pushing its buttons, playing notes, or operating any
- controls in it.
-
- It may even be possible for both programs to simultaneously output MIDI data to
- the same driver. But both programs need to DosWrite() full MIDI messages to
- the driver (ie, not break up one MIDI message into several calls to
- DosWrite()). If a program doesn't conform to this restriction, then its MIDI
- output may be destroyed by another program attempting to output MIDI data
- simultaneously. (Of course, even if the two programs conform to this
- restriction, and therefore, their MIDI data can be successfully "merged", this
- merge process will slow down the operations of each program, and may cause each
- program to experience significantly longer delays in MIDI output than if both
- programs weren't simultaneously outputting MIDI data). Piano fully conforms to
- this restriction and therefore, performing a MIDI output with some other
- program that uses the same driver should be OK. You may have to avoid using
- Piano while the other program is outputting data, if that program also doesn't
- conform to the restriction. But Piano may be left running while using other
- programs that access the same driver.
-
- Some drivers, such as MPUDEV, support several independent "ports" (ie, each
- port has its own MIDI hardware interface card), and each port has its own
- SHARED status. Therefore, it's perfectly acceptable to have two programs
- running which both use MPUDEV simultaneously, and you won't have to worry about
- any of the above sharing conditions as long as each program uses a different
- port.
-
-
- ΓòÉΓòÉΓòÉ 9. Error Messages ΓòÉΓòÉΓòÉ
-
- Here are the possible error messages that you may see. Following each message
- is a description of likely causes for that error and possible remedies, and
- what happens as a result of that error (ie, does the program terminate, or stop
- transmission, or what?).
-
- An error message is displayed in a message box that pops up and suspends the
- operation of the program until you dismiss that message box.
-
- Piano returns non-zero error values only if it encounters a problem upon
- startup. Otherwise, once Piano is up and running, it will return 0 (ie,
- successful operation) when it terminates.
-
-
- ΓòÉΓòÉΓòÉ 9.1. Initialization failed! ΓòÉΓòÉΓòÉ
-
- Synopsis Piano wasn't able to complete some initialization associated
- with Presentation Manager.
-
- Cause OS/2 couldn't start up another PM program.
-
- Cure Close down other running apps as you may have run out of PM
- resources, or shut down OS/2 itself, and try running Piano
- again.
-
- Error occurs Only during program startup.
-
- Result Piano terminates returning RC = -1.
-
-
- ΓòÉΓòÉΓòÉ 9.2. Can't load Exit handler! ΓòÉΓòÉΓòÉ
-
- Synopsis Piano wasn't able to complete some initialization associated
- with Presentation Manager.
-
- Cause OS/2 couldn't install an Exit List handler.
-
- Cure Close down other running apps as you may have run out of PM
- resources, or shut down OS/2 itself, and try running Piano
- again.
-
- Error occurs Only during program startup.
-
- Result Piano terminates returning RC = -2.
-
-
- ΓòÉΓòÉΓòÉ 9.3. Can't create window! ΓòÉΓòÉΓòÉ
-
- Synopsis Piano wasn't able to open its Presentation Manager window.
-
- Cause OS/2 couldn't create a PM window of the requested class.
-
- Cure Close down other running apps as you may have run out of PM
- resources or there may be a conflict in window classes, or shut
- down OS/2 itself, and try running Piano again.
-
- Error occurs Only during program startup.
-
- Result Piano terminates returning RC = -3.
-
-
- ΓòÉΓòÉΓòÉ 9.4. Can't open MIDI driver! ΓòÉΓòÉΓòÉ
-
- Synopsis This error means that the requested driver did not open, and
- therefore Piano can't do any MIDI output.
-
- Cause Some other program already has this driver open and has denied
- any other program access to it (ie, no Shared access). When a
- program opens a driver for reading or writing, it may decide to
- restrict any other program from reading and/or writing to that
- driver. Subsequent programs will not be allowed to open (and
- use) that driver while the preceding program is running.
-
- Cure There's nothing you can do other than to terminate the program
- that is refusing to share the driver. If in doubt as to which
- program that is, terminate all other programs using this driver,
- and try Piano again. See Driver Sharing for more information
- about this problem.
-
- Cause The driver isn't installed properly with an entry in your
- config.sys file.
-
- Cure Check that entry in your config.sys file.
-
- Cause The name you supplied is not the true, internal name of the
- driver. Every driver has an ascii string embedded inside of it,
- which is its real name as far as OS/2 is concerned. This might
- not be the same as the driver's filename. Usually, it is the
- filename minus the .SYS extension.
-
- Cure Contact the author of the driver and verify the driver's name
- for a DosOpen(). Or use my LISTDRVS.CMD REXX script (included
- with File REXX) to display a listing of the internal names of
- all installed drivers, and pick out what you think is the real
- name of that driver.
-
- Error occurs During program startup, or whenever you change the driver Port.
-
- Result If the error happens during program startup, Piano terminates
- returning RC = -4. Otherwise, Piano retains the previously
- opened driver for its MIDI output.
-
-
- ΓòÉΓòÉΓòÉ 9.5. Error with MIDI driver command! ΓòÉΓòÉΓòÉ
-
- Synopsis The driver returned an error when Piano issued the Reset Command
- via the driver's IoCtl interface. My MPUDEV.SYS driver uses
- this scheme to set an MPU-401 into Uart mode. That's what Piano
- needs to do when using an MPU-401. So, I do it this way.
-
- Cause If you're not using an MPU-401 or compatible MIDI interface,
- then it probably doesn't need to be set like this, its driver
- will probably not recognize what Piano is telling it to do, and
- you'll see the error message.
-
- Cure Specify the /I option when running Piano, or disable Initialize.
- This tells Piano that you don't want it to try to reset the MIDI
- interface using my MPUDEV driver's procedure. For example, if
- you had a driver named BLORT, and you didn't want it reset,
- here's what you might type as arguments when running the program
- (or type into the Parameters field of the Desktop icon)
-
- BLORT /I
-
- Error occurs During program startup, or whenever you change the driver Port
- and allow Piano to initialize the driver.
-
- Result Piano doesn't regard this as a real error. It's essentially
- ignored except for displaying the message.
-